package com.timemetro.app;

import android.annotation.TargetApi;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.os.Build;
import android.view.SurfaceHolder;

import org.xml.sax.SAXException;

import java.io.IOException;
import java.net.URISyntaxException;

import javax.xml.parsers.ParserConfigurationException;

/**
 * Created by localadmin on 15.05.2015.
 */

/**
 * Поток, в котором происходит отрисовка карты метро.
 * */
class ThreadForDraw extends Thread{
    private SurfaceHolder surfaceHolder;
    private Matrix matrix;

    private static boolean runThread;

    public void StopDraw(){
        runThread = false;
    }
    public void StartDraw(){
        runThread = true;
    }

    public ThreadForDraw(SurfaceHolder surfaceHolder, Resources resources) throws IOException, SAXException, ParserConfigurationException, URISyntaxException {
        this.surfaceHolder = surfaceHolder;

    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void run() {
                Canvas canvas;
        while (runThread) {
            canvas = null;
            try {
                // получаем объект Canvas и выполняем отрисовку
                canvas = surfaceHolder.lockCanvas(null);

                synchronized (surfaceHolder) {
                    canvas.drawColor(Color.WHITE);
                    ManagerDraw.ReDraw(canvas, ScaleAndTranslate.getMatrix());

                }
            }catch (Exception ex){
                // Произошла ошибка. Ничего страшного, в следующий раз получится...
            }
            finally {
                if (canvas != null) {
                    // отрисовка выполнена. выводим результат на экран
                    surfaceHolder.unlockCanvasAndPost(canvas);
                }
            }
        }
        }
    }